package parser

import "reflect"

func isNull(i interface{}) bool {
	ret := i == nil
	if !ret {
		vi := reflect.ValueOf(i)
		kind := reflect.ValueOf(i).Kind()
		if kind == reflect.Slice ||
			kind == reflect.Map ||
			kind == reflect.Chan ||
			kind == reflect.Interface ||
			kind == reflect.Func ||
			kind == reflect.Ptr {
			return vi.IsNil()
		}
	}

	return ret
}

func assertMsg(expr bool, msg string) {
	if !expr {
		panic(msg)
	}
}

func assert(expr bool) {
	if !expr {
		panic("Assert Fail")
	}
}
